﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using NTTHAO.Sites.CommonSite;
using NTTHAO.Web.BL.Authentication;
using NTTHAO.CommonWeb;
using System.Net.Mail;

public partial class Sites_CanNhaMoUoc_Webparts_User_ResetPassword : NTTHAO.CommonWeb.CommonUserControl
{
    public bool _ResetOK = false;
    public string _ErrorMessage = string.Empty;

    protected void Page_Load(object sender, EventArgs e)
    {
        aspnetForm.Action = Request.RawUrl;
    }
    public void btnSubmit_Click(object sender, EventArgs e)
    {
        if (!this.Page.IsValid)
        {
            return;
        }
        try
        {
            User user = User.GetUser(txtEmail.Value.Trim());
            if (user == null)
            {
                _ErrorMessage = "Email đã đăng ký không đúng.";
                return;
            }

            string newPass = this.GetRandomPassword();
            string encodedPass = WebGlobal.MD5String(newPass);
            user.Password = encodedPass;
            user.PasswordDate = DateTime.Now;
            user.Update();
            this.SendMail(user, newPass);
            _ResetOK = true;
        }
        catch
        {
            _ErrorMessage = "Email đã đăng ký không đúng.";
            return;
        }
    }

    public string GetRandomPassword()
    {
        string passChars = "123456789qwertyuipa123456789sdfghjklzxcvbnm123456789QWERTYUIPA123456789SDFGHJKLZXCVBNM123456789";
        string newPass = string.Empty;
        Random rand = new Random();
        for (int i = 0; i < 8; i++)
        {
            newPass += passChars[rand.Next(passChars.Length - 1)];
        }
        return newPass;
    }

    public void SendMail(User user, string newPass)
    {
        MailMessage mm = new MailMessage();
        mm.From = new MailAddress("support@transcom.vn", "kientrucmoi.vn", System.Text.Encoding.UTF8);
        mm.To.Add(new MailAddress(user.Email, user.FullName, System.Text.Encoding.UTF8));
        mm.Bcc.Add(new MailAddress("admin@hoacucdai.net", "Thao Nguyen", System.Text.Encoding.UTF8));
        mm.Subject = "Mật khẩu mới trên KiếnTrúcMới.vn";

        string strBoby = ResetEmailContent.Replace("##NAME##", user.FullName);
        string siteName = "KiếnTrúcMới.vn";// Request.Url.Host;
        string contactEmail = "<a href=\"mailto:##EMAIL##\">##EMAIL##</a>".Replace("##EMAIL##", "support@kientrucmoi.vn");
        string siteLink = "\"http://" + Request.Url.Host + (Request.Url.Port == 80 ? "" : (":" + Request.Url.Port.ToString())) + "/\"";
        
        strBoby = strBoby.Replace("##SITE_NAME##", siteName).Replace("##SITE_LINK##", siteLink).Replace("##CONTACT_EMAIL##", contactEmail);
        strBoby = strBoby.Replace("##PASSWORD##", newPass);
        mm.Body = strBoby;
        mm.IsBodyHtml = true;
        mm.ReplyTo = new MailAddress("support@transcom.vn", "kientrucmoi.vn", System.Text.Encoding.UTF8);

        NTTHAO.CommonWeb.WebGlobal.SendMail(mm);
    }

    private static string ResetEmailContent = @"
<p>Chào bạn <b>##NAME##</b>,</p>
<p>Bạn vừa yêu cầu tạo lại mật khẩu cho tài khoản của bạn tại <a href=##SITE_LINK##>##SITE_NAME##</a>.</p>
<p>Mật khẩu mới của bạn là: ##PASSWORD##</p>
<p>Nếu bạn có bất kỳ thắc mắc nào, vui lòng liên hệ với chúng tôi theo địa chỉ email ##CONTACT_EMAIL##.</p>
<p>Chúc bạn thành công!</p>
<p><b>Trân trọng,</b><br>
<a href=##SITE_LINK##>##SITE_NAME##</a></p>
";
}